AWS ConfigからSNSへ直接通知を送信する方法

AWS ConfigからSNSへ直接通知を送信する方法

Clock Icon2024.08.23

はじめに

かつまたです。AWS ConfigからSNSに通知を送信する方法として、以前の記事で紹介しましたが、各種設定や権限によりEventBridgeを使用せずとも通知を送信することが可能であるため、今回試してみました。
ConfigルールやSNSトピック、EC2等の設定は以下の記事と同様に作成したため省略しております。

https://dev.classmethod.jp/articles/aws-config-ec2-public-ip-katsumata/

AWS Configの設定

1.AWSマネジメントコンソールからAWS Configサービスに移動します。
2.ナビゲーションメニューの「設定」→「編集」→「配信方法」から「Amazon SNS トピックへのストリーム設定の変更と通知」を有効化します。
3.「アカウントからトピックを選択」を選択し、作成したSNSトピック名を選択します。

スクリーンショット 2024-08-13 11.47.23

SNSトピックポリシーの設定

1.AWSマネジメントコンソールからSNSに移動し、「SNSトピック」へ移動します。
2.作成したトピックを選択し、「アクセスポリシー」からAWS Configに対し、許可ポリシーが設定されているかを確認します。
3.必要に応じてポリシーを編集します。ポリシーを編集するには、「ポリシーを編集」をクリックし、適切なポリシーを追加、修正します。

json例
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "config.amazonaws.com"
      },
      "Action": "SNS:Publish",
      "Resource": "SNSトピックのARN名"
    }
  ]
}

スクリーンショット 2024-08-13 11.52.15

IAMロールの確認

1.AWSマネジメントコンソールからIAMに移動し、「ロール」を選択します。
2.AWS Configが使用しているロールを選択し、詳細を表示します。
3.「許可」を選択し、SNSトピックにメッセージを公開するためのポリシーが含まれているか確認します。
4.追加する場合、「インラインポリシーを追加」または「ポリシーをアタッチ」→「JSON」からポリシーを追加、修正します。

json例
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "SNSトピックのARN名"
    }
  ]
}

スクリーンショット 2024-08-07 12.04.56

メール通知確認

1.上記に記載したブログ内の「4.非準拠EC2の起動と通知確認」の手順同様に設定したConfigルールに非準拠なリソースを作成します。
2.SNSサブスクリプションに登録したメールアドレスを確認し、メール通知が配信されていることを確認します。
スクリーンショット 2024-08-13 11.02.45

終わりに

EventBridgeを使用することでSNSの他にLambdaやSQSなど複数のターゲットへの配信やイベントのフィルタリングが可能ですが、今回のようなリソース検出とSNSトピックのみへの配信といったユースケースではEventBridgeを使用せずに単純な構成で作成が可能です。

ご覧いただきありがとうございました。

参考

AWS Config から Amazon SNS トピックに送信される通知 - AWS Config

Amazon SNSトピックのアクセス許可

Amazon EventBridge による AWS Config の監視

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.